import api from '@/services/api';
import { getOriginOutsideVideoURL } from '@/utils/videoHelper.js';
/**
 * 足球管理相关服务
 * 包含图标管理、字幕编辑和视频生成功能
 */
const footballService = {
  // ===== 图标相关 API =====
  
  /**
   * 获取足球图标列表
   * @param {string} iconType - 图标类型: "team"(球队) 或 "match"(比赛)
   * @param {number} page - 页码
   * @param {number} pageSize - 每页显示数量
   * @returns {Promise<Object>} 图标列表数据
   */
  getIcons(iconType, page = 1, pageSize = 20) {
    return api.get(`/football/football_icon?icon_type=${iconType}&page=${page}&page_size=${pageSize}`);
  },
  
  /**
   * 上传新图标
   * @param {File} iconFile - 图标文件
   * @param {string} iconType - 图标类型: "team"(球队) 或 "match"(比赛)
   * @param {string} iconFilename - 图标文件名
   * @returns {Promise<Object>} 上传结果
   */
  uploadIcon(iconFile, iconType, iconFilename, iconFileExt) {
    const formData = new FormData();
    formData.append('icon_file', iconFile);
    formData.append('icon_type', iconType);
    formData.append('icon_filename', iconFilename);
    formData.append('icon_fileext', iconFileExt);
    
    return api.postFormData('/football/football_icon', formData);
  },
  
  /**
   * 更新图标文件名
   * @param {string} iconId - 图标ID
   * @param {string} newFilename - 新的文件名
   * @returns {Promise<Object>} 更新结果
   */
  updateIconFilename(iconId, newFilename) {
    return api.put(`/football/football_icon/${iconId}`, {
      icon_filename: newFilename
    });
  },
  
  /**
   * 删除图标
   * @param {string} iconId - 图标ID
   * @returns {Promise
   */
  deleteIcon(iconId) {
    return api.delete(`/tools/media/${iconId}`);
  },
  
  // ===== 字幕相关 API =====
  
  /**
   * 获取字幕文件内容
   * @param {string} fileId - 字幕文件名
   * @returns {Promise<Object>} 字幕内容
   */
  getSubtitleContent(fileId) {
    return api.get('/football/subtitle', {
      file_id: fileId
    });
  },
  
  /**
   * 保存字幕文件内容
   * @param {string} fileId - 字幕文件名
   * @param {string} content - 字幕内容
   * @returns {Promise<Object>} 保存结果
   */
  saveSubtitleContent(fileId, content) {
    return api.put('/football/subtitle', {
      file_id: fileId,
      content: content
    });
  },
  
  // ===== 视频生成 API =====
  
  /**
   * 生成图标视频
   * @param {string} subtitlePath - 字幕文件路径
   * @param {string} videoFolder - 视频保存文件夹
   * @returns {Promise<Object>} 生成结果
   */
  generateIconVideos(videoPaths, subtitleId) {
    // 遍历 videoPaths，调用 getOriginOutsideVideoURL 并收集结果
    const videoURLs = videoPaths.map(path => getOriginOutsideVideoURL(path));
    return api.post('/football/icon_videos', {
      video_paths: videoURLs,
      subtitle_id: subtitleId
    });
  },

  getSubtitleList(page = 1, pageSize = 20, query = "") {
    const params = new URLSearchParams({
      page: page.toString(),
      page_size: pageSize.toString(),
      query,
    });
    
    return api.get(`/tools/subtitle?${params.toString()}`);
  }
  ,
  getSubtitleById(subtitleId) {
    return api.get(`/tools/media/${subtitleId}`);
  }
};

export default footballService;